Information processing apparatus, method thereof, and storage medium

ABSTRACT

An information processing apparatus includes a plurality of modules connected in a ring shape via a bus, and each module processes a packet flowing in a single direction on the ring in a predetermined order. The module includes a communication unit for transmitting a packet received from a first direction in the ring via the bus to a second direction, a discrimination unit for discriminating a packet from among the packets received from the first direction as a processing packet to be processed by the module, and a processing unit which is connected with the communication unit one by one and configured to process the processing packet. The communication unit transmits the packet processed by the processing unit at an interval equivalent to processing time or more for a processing packet processed by a module in a latter stage in the predetermined order among packets transmitted by the communication unit to the second direction.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing apparatus inwhich a plurality of processing modules is connected to a bus in a ringshape, a method thereof, and a storage medium.

2. Description of the Related Art

In order to realize high-speed pipeline processing, there is aconventional method for dividing a series of data processingcorresponding to the pipeline processing, allocating the divided dataprocessing to a plurality of modules, and connecting the modules to abus according to an order of a flow of the processing.

In order to reduce traffic in the bus when the modules are connected tothe bus in a ring shape, there is a method for determining a load on themodule for receiving data and restricting data to be received from otherprocessing modules when the load is high.

For example, there is a method in which a module restricts reception ofthe data from other modules by transmitting a message and deleting andreplaying a token to reduce the traffic of the bus (See Japanese PatentApplication Laid-Open Nos. 2-283142 and 10-228445).

Japanese Patent No. 2541697 discusses a method in which the data isinput at timing not to collide with data circulating in the ring shapedbus to increase an efficiency of an entire processing when the pipelineprocessing is performed using the modules connected to the ring shapedbus.

However, since techniques discussed in Japanese Patent ApplicationsLaid-Open Nos. 2-283142 and 10-228445 stop a flow of the data in thering shaped bus, the data to be supplied to the module is also stoppedeven if other modules can be processed in parallel, so that a processingspeed may be decreased as a whole.

When the technique discussed in Japanese Patent No. 2541697 is used forthe ring shaped bus, a processing efficiency may be decreased as awhole. One of the reasons is that appropriate timing for supplying thedata before all data sets necessary for the processing are obtained isdifferent from that after all the data sets necessary for the processingare obtained.

SUMMARY OF THE INVENTION

According to an aspect of the present invention, an informationprocessing apparatus includes a plurality of modules which are connectedin a ring shape via a bus and each module processes a packet flowing ina single direction on the ring in a predetermined order. The moduleincludes a communication unit configured to transmit a packet which isreceived from a first direction in the ring via the bus to a seconddirection therein, a discrimination unit configured to discriminate apacket from among the packets received from the first direction as aprocessing packet to be processed by the module, and a processing unitwhich is connected with the communication unit one by one and configuredto process the processing packet discriminated by the discriminationunit. The communication unit transmits the packet processed by theprocessing unit at an interval equivalent to processing time or more fora processing packet processed by a module in a latter stage in thepredetermined order among a plurality of packets which is transmitted bythe communication unit to the second direction.

Further features and aspects of the present invention will becomeapparent from the following detailed description of exemplaryembodiments with reference to the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate exemplary embodiments, features,and aspects of the invention and, together with the description, serveto explain the principles of the invention.

FIG. 1 illustrates an example of a schematic configuration of acommunication processing unit in a ring-shaped bus.

FIGS. 2A and 2B illustrate an example of a format of a packet.

FIGS. 3A and 3B illustrate schematic configurations of an imageprocessing apparatus including processing units connected to a ring bus.

FIGS. 4A and 4B illustrate operational states of a data flow.

FIG. 5 illustrates a schematic configuration of the processing unit ofthe image processing apparatus.

FIG. 6 is a flowchart illustrating a flow of processing performed by adata transmission control unit.

FIG. 7 illustrates a schematic configuration of the processing unit ofthe image processing apparatus.

FIG. 8 is a flowchart illustrating a flow of the processing performed bythe data transmission control unit.

FIG. 9 illustrates a schematic configuration of the processing unit ofthe image processing apparatus.

FIG. 10 illustrates a schematic configuration of the processing unit ofthe image processing apparatus.

FIG. 11 illustrates a schematic configuration of the image processingapparatus.

FIG. 12 is a flowchart illustrating a flow of processing for setting theimage processing unit by a control processing unit.

FIG. 13 illustrates another exemplary embodiment of the communicationprocessing unit.

FIG. 14 is a flowchart illustrating a flow of processing performed bythe communication processing unit when the configuration illustrated inFIG. 13 is used.

FIGS. 15A and 15B illustrate states of the processing when theconfiguration illustrated in FIG. 13 is used.

FIG. 16 illustrates another format of a packet.

FIG. 17 illustrates another exemplary embodiment of the informationprocessing apparatus.

FIG. 18 illustrates another exemplary embodiment of the communicationprocessing unit.

DESCRIPTION OF THE EMBODIMENTS

Various exemplary embodiments, features, and aspects of the inventionwill be described in detail below with reference to the drawings.

In an information processing apparatus in which a plurality ofinformation processing units are connected in a ring shaped bus, andwhen a processing speed is decreased will be described as an example(hereafter a ring shaped bus is referred to as a “ring bus”).

FIG. 1 illustrates a configuration of a communication processing unitwhich connects a communication path (hereafter referred to as a “bus”)and an information processing unit (hereafter, referred to as a “dataprocessing unit”). An input data reception unit 101 receives a datapacket flowing in the ring bus. An input data discrimination unit 102checks control information included in the input data packet anddiscriminates whether the input data is to be processed by an own node.

A processing data output unit 103 transmits to the data processing unitthe data determined by the input data discrimination unit 102 to beprocessed by the own node. A processed data input unit 104 receives datainput processed by the data processing unit in the own node.

An output data generation unit 105 generates output data from the datawhich is determined by the input data discrimination unit 102 as thedata not to be processed by the own node, an empty packet which isdetermined not including valid data, the processed data which istransmitted from the processed data input unit 104 and necessary to beoutput to the bus, and the like. An output data transmission unit 106outputs to the ring bus the output data generated by the output datageneration unit 105.

FIGS. 2A and 2B illustrate data configurations of packets to betransmitted and received by the ring bus of the data communicationprocessing unit.

A field 201 includes a counter indicating an order for processing thedata. A part of the data packet including sequential unprocessed datamay circulate in a ring shaped data bus. Thus, the data received by thecommunication processing unit is not always the data to be firstlyprocessed by a corresponding data processing unit. If the data has sucha counter, the processing can be performed according to a correctprocessing order. The corresponding data processing unit refers to thedata processing unit with which the communication processing unit cancommunicate without using the ring bus.

A field 202 includes a flag indicating that the data stored in the datapacket is valid data to be processed. In other words, the flag indicateswhether the packet is currently in use. Hereafter, the flag is referredto as a valid bit. A field 203 includes a flag indicating that the datastored in the packed is not received by the data processing unit whichis to process the data for some reasons. The field 203 has a samemeaning as that of a data supply stop request bit (disable signal) to aprevious stage in a normal pipeline connection. Hereafter, the field 203is referred to as a stole bit.

A field 204 includes an identification (ID) of the data processing unitthat has lastly processed the data. The data communication processingunit compares a stand-by ID previously set from an external unit withthe ID of the data packet, and performs the processing when the IDscorrespond with each other. A field 205 stores the data.

A total number of the packets flowing in the ring bus is substantiallyconstant. More specifically, a sum of empty packets and valid packets issubstantially constant, and the constant number of packets continuouslycirculate in the ring bus. The empty packet stores the data determinedto be invalid, and the valid packet stores the data or the command.

FIG. 3A illustrates a configuration of the image processing apparatus inwhich the bus is constituted in a token passing method.

A data acquisition unit 301 acquires the data to be processed from anexternal storage apparatus. An input communication processing unit 302supplies the acquired data into the ring bus. A data processing unit 303performs a predetermined processing on the supplied data. Normally, theprocessing unit is not set in a standalone status in which theprocessing unit does not communicate with the external units duringprocessing information. That is because amass-storage circuit isprovided outside the processing unit and a high speed small capacitystorage circuit is provided inside the processing unit. In thisspecification, in order to describe communication processing to beperformed by the processing unit in detail, the data processing unit andthe communication processing unit are described independently from theprocessing unit. It is assumed that each data processing unit is pairedwith a corresponding communication processing unit.

A communication processing unit 304 selects and acquires the data(processing packet) to be processed by the data processing unit 303 fromthe ring bus. In this configuration, one or more processing units 308(module) including the data processing unit 303 and the communicationprocessing unit 304 are connected to a ring bus 307.

An output communication processing unit 305 selects and acquires theprocessed data from the ring bus to output the processed data to theexternal storage apparatus. A data output unit 306 outputs the processeddata acquired by the output communication processing unit 305 to theexternal storage apparatus. The ring bus 307 is a ring shaped data buswhich communicably connects the communication processing units describedabove.

FIG. 3B illustrates a state where the processing speed is decreased inthe configuration illustrated in FIG. 3A.

It is assumed that the ring bus transmits a piece of data to a followingcommunication processing unit per unit time (hereafter, referred to as a“cycle”). When three cycles elapse after a piece of data is received, adata processing unit 401 can transmit processed result data. During theprocessing, the data processing unit 401 cannot receive next data.

A communication processing unit 402 acquires, from the ring bus, thedata to be processed by the data processing unit 401 corresponding tothe communication processing unit 402. While the data processing unit401 is processing first data 403, if second data 404 is input to thecommunication processing unit 402 corresponding to the data processingunit 401, the communication processing unit 402 does not transmit thesecond data 404 to the data processing unit 401 but transmits the data404 to a next processing unit in a following cycle, or deletes the data404 and notifies the data acquisition unit 301 of a resend request. Ifthe second data 404 merely circulates in the ring bus, the second data404 needs a number of cycles corresponding to a number of communicationprocessing units connected to the ring bus to return to thecommunication processing unit 402.

In the configuration illustrated in FIG. 3B, since six communicationprocessing units are connected to the ring bus, the data 404 needs timefor six cycles to return to the communication processing unit 402. Thedata processing unit 401 completes the processing in three cycles,outputs the first data 403, and becomes a stand-by status for thefollowing data. Thus, a delay time of 6−3=3 cycles, at least, isgenerated. Further, if the delay occurs with all input data setsfollowing third data, when a total of input data sets is defined as “N”,basically, the data processing unit 401 can process one piece of data inthree cycles and thus the processing is completed in 3N cycles. However,if the delay time of three cycles is generated for each data, 6N cycles,which are double, are necessary.

When the technique discussed in Japanese Patent Application Laid-OpenNo. 2-283142 is applied to the image processing apparatus, the data 404which has not been received is deleted by the communication processingunit which could not transmit the data to the data processing unit. Thedata acquisition unit 301 from which the data is supplied checks thatthe data 404 does not return within a predetermined time period, andthen transmits the data once again.

According to the technique discussed in Japanese Patent ApplicationLaid-Open No. 2-283142, however, when data 405 following the data 404has been already acquired or transmitted, it is necessary to acquiredata to be read from the external unit again by going back to the datawhich have been already transmitted, so that access to the external unitincreases.

When the technique discussed in Japanese Patent Application Laid-OpenNo. 10-228445 is adopted, a content of the data 404 which is notreceived by the communication processing unit 402 is discarded, and thedata 404 is flown to the ring bus as a token notifying that the data hasnot been received.

According to the technique discussed in Japanese Patent ApplicationLaid-Open No. 10-228445, when an operation for acquiring the data to betransmitted again is performed after the notification token is received,the delay time can be further increased.

Japanese Patent No. 2541697 discusses a technique in which the followingdata can be supplied from an input end at timing for avoiding collisionwith another data in the ring bus even while previous data is beingprocessed.

According to Japanese Patent No. 2541697, however, when the dataprocessing unit operates a plurality of pieces of data, it is estimatedthat an output is determined by the data input with the same timing.When the plurality of pieces of data need to be received to generate theoutput data, processing speed can be further decreased if a number ofbuses corresponding to a number of pieces of the data to be received isnot prepared, which will be described below.

The technique discussed in Japanese Patent No. 2541697 will be describedin detail below referring to FIGS. 4A and 4B. FIGS. 4A and 4B illustratean apparatus provided with two data processing units which have asimilar configuration to that illustrated in FIGS. 3A and 3B. In theapparatus, it is assumed that a data processing unit 501 and a dataprocessing unit 503 sequentially perform processing on data, then thedata processing unit 501 performs the processing once again, and acquirea result. The data processing unit 501 needs three cycles to perform theprocessing on one piece of data and output the data. The data processingunit 503 outputs the data every three cycles after four pieces of datahave been input. Alphabets attached to data 505, 506, 507, and 508illustrated in FIGS. 4A and 4B indicate orders that the data is inputinto the apparatus, and a numeral next to the alphabet indicates anumber of pieces of data processed by the data processing unit.

In this case, until the data processing unit 503 illustrated in FIG. 4Areceives fourth data 507, the data processing unit 503 can effectivelyperform the processing on the data by inputting the data from the dataacquisition unit 301 at a certain interval in which the data can bereceived. However, as illustrated in FIG. 4B, when further three cycleselapse after the fourth data 507 which is to be output is received bythe data processing unit 503, the data 505 can be output. At this point,if data 508 has been input into the apparatus and completed theprocessing by the data processing unit 501, and if the data 507 is notoutput from the data processing unit 503, the data 508 is to circulatein the ring bus.

In the technique discussed in Japanese Patent No. 2541697, in order toenable the data processing unit 503 to receive all pieces of the data,the processing time of the data processing unit 503 needs to includetime for completing the processing on four sets of data. Morespecifically, since an interval for inputting the data from the dataacquisition unit 301 needs to be 3×4=12 cycles or more, at least, withwhich the data processing unit 503 can receive following data, theprocessing cannot be efficiently performed when the data processing unit503 illustrated in FIG. 4A receives four sets of data to be output.

An image processing apparatus according to a first exemplary embodimentof the present invention will be described below. Components which havesame functions as those of the reference example are denoted in the samereference numerals. Descriptions about components which have similarconfigurations or functions will not be repeated. The present exemplaryembodiment uses a communication method different from a token passingmethod, and thus a token packet does not need to be used.

FIG. 11 illustrates a schematic configuration of the image processingapparatus according to the first exemplary embodiment of the presentinvention. A control processing unit 1101 may include a processingcircuit such as a central processing unit (CPU) or a micro processingunit (MPU). An image processing unit 1102 includes a plurality ofprocessing units connected to the ring bus.

A random access memory (RAM) 1103 is a readable/writable memory, andstores input image data before being processed, output image data afterbeing processed, data for setting parameter of the image processing unit1102, or the like. A read only memory (ROM) 1104 is a readable memorywhich can store processing procedures, and constants of settingparameters of the control processing unit 1101 and the image processingunit 1102.

According to a program read from the ROM 1104, the control processingunit 1101 controls a system and issues an instruction to the imageprocessing unit 1102. The image processing unit 1102 performs imageprocessing according to the instruction from the control processing unit1101. At that time, input image data previously stored in the RAM 1103is read to perform the processing, and a processing result is input tothe RAM 1103.

FIG. 12 illustrates a flow of a processing for setting the imageprocessing unit 1102 by the control processing unit 1101. When the imageprocessing control is started, the processing is performed according tofollowing steps. In step S1201, the control processing unit 1101 readsfrom the ROM 1104 an order of the processing performed by the dataprocessing unit in the image processing unit 1102. In step S1202, thecontrol processing unit 1101 reads a processing parameter to be givenfrom the ROM 1104 to the data processing unit. In step S1203, thecontrol processing unit 1101 calculates a control parameter of the imageprocessing unit 1102 by using the read data processing order and theread processing parameter.

In step S1204, the control processing unit 1101 performs setting of theimage processing unit 1102 using the control parameter calculated instep S1203. In step S1205, the control processing unit 1101 instructsthe image processing unit 1102 to start the processing. In step S1206,the control processing unit 1101 checks whether the setting of the imageprocessing unit 1102 is completed.

In step S1207, the setting is determined to be completed (YES in stepS1207), the processing ends. When the setting is not completed (NO instep S1207), the processing returns to step S1206 to continue theprocessing for checking the completion.

The image processing unit 1102 of the present exemplary embodiment has aschematic configuration similar to those illustrated in FIGS. 3A and 3B.

According to the present exemplary embodiment, as illustrated in FIGS.3A and 3B, the modules including the communication processing unit andthe data processing unit are pipeline-connected to be performed inparallel. Further, both ends of the modules are connected to the ringshaped bus.

In such a ring bus, as illustrated by a packet 801, a limited number ofconceptual packets which store the data exist in the ring. The packetstores the data to be processed and circulates in a single direction totransfer the data to the desired data processing unit. In the presentexemplary embodiment, the packet has the format illustrated in FIGS. 2Aand 2B.

Each communication processing unit compares the ID previously set to theregister stored therein with the ID added to the data in the packet.When the IDs are identical, the communication processing unit acquiresthe data of the packet. Subsequently, the data processing unit processesthe data of the packet. The processed data is transmitted from the dataprocessing unit to the communication processing unit. The communicationprocessing unit stores the processed data and a new ID in an emptypacket which does not store any data and outputs the data to the bus.Each communication unit performs such processing described above toperform a series of pipeline processing in an intended order.

Further, in order to change types of the processing performed by theimage processing apparatus, the processing illustrated in FIG. 12 isperformed again. The orders of the processing units to be used for thepipeline processing and processing contents of each processing unit canbe readily changed.

FIG. 5 illustrates a schematic configuration of a processing unit 601included in the image processing apparatus according to the presentexemplary embodiment. A ring bus 602 communicably connects various unitsincluded in the processing unit 601. A communication processing unit 603communicates with other processing units via the ring bus. A dataprocessing unit 604 processes the data received from the communicationprocessing unit 603 using allocated algorithm. An input data receptionunit 605 receives a data packet flowing in the ring bus (morespecifically, packet from the communication processing unit on a firstdirection). An input data discrimination unit 606 checks the packetreceived by the input data reception unit 605, and determines whetherthe data stored in the packet is to be processed by the own node andwhether the packet is valid. A processing data output unit 607 extractsthe data and a command included in the packet that the input datadiscrimination unit 606 determines to process by the own node, andoutputs the data to the data processing unit 604.

A processed data input unit 608 receives the data and the command inputfrom the data processing unit 604. A data transmission interval counter609 stores a value relating to an interval from the last data has beentransmitted. A data transmission interval register 610 stores a valuerelating to an interval for transmitting the data. A data transmissioncontrol unit 611 controls an interval for transmitting the data receivedfrom the processed data input unit 608 to an output data generation unit612 to become a set value of the data transmission interval register 610or more.

The output data generation unit 612 generates the transmission packetfrom the input data which the input data discrimination unit 606determines not to be processed by the own node and the data transmittedfrom the data transmission control unit 611. The output data generationunit 612 stores the data in an empty packet and validate the data togenerate the transmission packet. An output data transmission unit 613transmits the transmission packet generated by the output datageneration unit 612 into the bus (more specifically, to the transmissionprocessing unit on a second direction).

According to the present exemplary embodiment, the packet circulating inthe ring bus 602 has the format illustrated in FIGS. 2A and 2B. A formatof the ID to be stored in the field 204 is not limited as long as the IDcan satisfy purposes that the data packet is transferred between thedata processing units in a desired order and the command packet istransferred to a desired data processing unit.

Therefore, for example, a combination of identifiers of a sender and arecipient of the packet can be allocated for the ID to be stored in thefield 204 instead of the ID of the last data processing unit which hasprocessed the data. Further, the data packet and the command packet mayhave different formats of the ID to be stored in the field 204.

The control processing for transmitting the data performed by the datatransmission control unit 611 will be described below referring to aflowchart illustrated in FIG. 6. In step S701, the data transmissioncontrol unit 611 checks whether there is any transmittable data in theprocessed data input unit 608. In step S702, when there is notransmittable data in the processed data input unit 608 (NO in stepS702), the data transmission control unit 611 repeats the processing insteps S701 and S702. When there is the transmittable data in theprocessed data input unit 608 (YES in step S702), in step S703, the datatransmission control unit 611 increments the data transmission intervalcounter 609. In step S704, the data transmission control unit 611compares a value of a counter of the data transmission interval counter609 with a value of the data transmission interval register 610.

By comparing the values, the data transmission control unit 611 repeatsthe processing in steps S703 and S704 until the value of the datatransmission interval register 610 becomes more than the value of thedata transmission interval counter 609. In step S704, if it isdetermined that the interval set in the data transmission intervalregister 610 has elapsed (YES in step S704), then in step S705, the datais transmitted. In step S706, the data transmission control unit 611resets the value of the data transmission interval counter 609.

In step S707, the data transmission control unit 611 checks whether allpieces of data in a series to be processed has been processed. When notprocessed (NO in step S707), the processing is repeated from step S701.The series of data to be processed may be image data of one page, or oneblock of a plurality of blocks which are divided from the data of theone image.

The data transmission interval register 610 stores, as a transmissioninterval, a value indicating an interval at which a setting targetprocessing unit transmits a packet which is likely to be processed by afollowing processing unit. The transmission interval indicates aninterval longer than processing time of the following processing unit,and is preferably as short as possible.

The processing time is defined as time conceptually necessary for theprocessing unit to supply one packet, to complete the processing on thepacket according to the allocated algorithm, and to become a state readyfor receiving a next data. For example, the processing time of theprocessing unit which receives two packets and transmits one packet isregarded as a half of a time period from receiving two packets tocompleting transmission of one packet. On the other hand, the processingtime of the processing unit which receives one packet and transmits twopackets is regarded as a time period from receiving one packet tocompleting transmission of two packets. In the present exemplaryembodiment, according to the above described setting of the processingunit, the processing unit which cannot receive the following packetduring the processing can transmit an amount of the packets which can beprocessed. Thus, the traffic in the bus can be optimized.

The transmission interval largely depends on performance of each dataprocessing unit and a type of processing to be performed. Referring tothe flowchart illustrated in FIG. 12, a method in which the controlprocessing unit 1101 sets the transmission interval of each processingunit will be described below. More specifically, the transmissioninterval of the processing unit is set to the processing time per packetof a following processing unit next to the processing unit in aprocessing order or longer.

Therefore, it is desirable that the control processing unit 1101 setsthe transmission interval from the last processing unit to the firstprocessing unit in the inverse order. According to the present exemplaryembodiment, since the data output unit 306 is not the processing unit,the processing time does not need to be considered. However, the totalsum of time for receiving and transmitting a packet in the data outputunit 306 may be considered as the processing time.

As described above, according to the first exemplary embodiment, amongthe packets transmitted by the processing units, the packet to beprocessed by the processing unit in a latter stage is transmitted at theinterval equivalent to or more than the processing time for each packetby the processing unit in the latter stage. Thus, the data to be outputto the ring bus is narrowed down to the data necessary for beingprocessed, so that data can be effectively circulated. Since the packetnot to be processed in the processing unit in the latter stage is notsubjected to this restriction, the packet flow in the ring bus is notdisturbed.

The data processing unit 303, the data acquisition unit 301, and thedata output unit 306 may perform the processing based on the commandpacket acquired from the ring bus. In this case, since the data and thecommand can be supplied to the data processing unit via a single bus byshifting time, the bus can be physically reduced, and a circuit of theinformation processing apparatus can be downsized.

FIG. 7 illustrates another exemplary embodiment of the communicationprocessing unit. In the configuration illustrated in FIG. 7, every timethe data processed by the processing unit is transmitted a number ofdata transmissions (a first amount of data), the communicationprocessing unit restricts the transmission of the data processed by theprocessing unit during a predetermined suspension time period(corresponding to transmitting a second amount of data). Components andprocesses which have same functions as those illustrated in FIG. 5 aredenoted in the same reference numerals. Descriptions about componentsand processes which have similar configurations or functions will not berepeated.

In FIG. 7, a data transmission number counter 801 stores a number oftransmissions of the data processed in the data processing unit 604. Thenumber of transmissions of the data is equivalent to a number oftransmitted packets. A continuous data transmission number register 802stores a number of sequential transmissions of the data.

A data transmission suspension period register 803 stores a valueindicating a time period when the transmission of the data is restrictedafter a number of pieces of the data set to the continuous datatransmission number register 802 is transmitted. The data transmissioncontrol unit 611 controls the transmission of the data based on thevalues set to the data transmission number counter 801, the continuousdata transmission number register 802, and the data transmissionsuspension period register 803.

The control processing performed by the data transmission control unit611 in the configuration illustrated in FIG. 7 will be described belowreferring to a flowchart illustrated in FIG. 8. In step S901, the datatransmission control unit 611 checks whether there is any transmittabledata in the processed data input unit 608. In step S902, when there isno transmittable data in the processed data input unit 608 (NO in stepS902), the data transmission control unit 611 repeats the processing insteps S901 and S902. When there is transmittable data (YES in stepS902), in step S903, the data transmission control unit 611 determineswhether a value of the data transmission number counter 801 is equal toa value of the continuous data transmission number register 802.

When the values are equal (Yes in step S903), in step S904, the datatransmission control unit 611 increments a value of the datatransmission interval counter 609, and repeats the processing in stepsS904 and S905 until the data transmission suspension time period elapseswhich is set when the last data transmission is completed. When the setdata transmission suspension time period elapses, in step S908, the datatransmission control unit 611 resets the data transmission numbercounter 801 to zero.

When the values are not equal (NO in step S903), in step S906, the datatransmission control unit 611 increments the value of the datatransmission interval counter 609. Then in step S907, the datatransmission control unit 611 compares the value of the datatransmission interval counter 609 with the value set to the datatransmission interval register 610. The data transmission control unit611 repeats the processing in steps S906 and S907 until the value of thedata transmission interval counter 609 becomes the value of the datatransmission interval register 610 or more.

When time of the data transmission interval or more elapses in stepS907, or when step S908 is completed, then in step S909, the datatransmission control unit 611 transmits the data. When the data istransmitted, in step S910, the data transmission control unit 611 resetsthe data transmission interval counter 609. In step S911, the datatransmission control unit 611 increments the value of the datatransmission number counter 801. In step S912, the data transmissioncontrol unit 611 checks whether all pieces of data in a series to beprocessed has been processed. When not processed (NO in step S912), theprocessing is repeated from step S901.

As described above, the time period for suspending the transmission isprovided after a predetermined number of pieces of data is sequentiallytransmitted, so that an amount of the data flowing in the ring bus maybe restricted not to increase to deteriorate processing performance.

FIG. 9 illustrates another exemplary embodiment of the communicationprocessing unit. In a configuration illustrated in FIG. 9, the imageprocessing apparatus that includes a plurality of processing units inwhich a time period “A” for transmitting data (equivalent to a timeperiod for transmitting the first amount of data) and a time period “B”for restricting the transmission (equivalent to a time period fortransmitting the second amount of data) are alternately repeated isdescribed.

Components and processes which have same functions as those illustratedin FIGS. 5 and 7 are denoted in the same reference numerals.Descriptions about components and processes which have similarconfigurations or functions will not be repeated.

In a data transmittable time period setting register 1001, a valueindicating a length of a data-transmittable time period is set. In adata transmission restriction time period setting register 1002, a valueindicating a length of a restriction time period for restricting thetransmission of the data is set.

A timer 1003 notifies the data transmission control unit 611 of timingfor switching the transmission time period and the restriction timeperiod based on the value of the data transmittable time period settingregister 1001 and the value of the data transmission restriction timeperiod setting register 1002. The data transmission control unit 611repeats the transmission and the restriction of the data at a periodnotified by the timer 1003.

As described above, the configuration illustrated in FIG. 9 canregularly flow the data by transmitting the data at a predeterminedperiod and supply a necessary amount of data to each data processingunit with necessary timing. When, for example, a certain data processingunit generates output data by increasing input data, the processing canbe performed with a maximum efficiency if only the data can be suppliedwithout delay after an increase of the input data is completed even ifthe data is not supplied when the input data is being increased.Therefore, values of the data transmittable time period setting register1001 and the data transmission restriction time period setting register1002 are set so that the data from the previous stage in the processingorder can be supplied according to a period of the increase. With thissetting, if there is a data processing unit in which an amount of thedata is changed, the data can be efficiently transferred according to achange period. One example of processing for increasing the input dataincludes multiplication performed when the input data is the image data.

As illustrated in FIG. 10, “n” sets of the data transmittable timeperiod setting register 1101, the data transmission restriction timeperiod setting register 1102 and the timer 1103 may be prepared.Transmission timing may be defined as time when the “n” timers indicatethat the data can be transmitted. More specifically, a logical productof the “n” timers is defined as the data transmission timing.

FIG. 13 illustrates another exemplary embodiment of the communicationprocessing unit 603. Components and processes which have same functionsas those illustrated in FIG. 5 are denoted in the same referencenumerals. Descriptions about components and processes which have similarconfigurations or functions will not be repeated.

When the input data discrimination unit 606 determines a packet is to beprocessed by the own node, a data receivable state detection unit 616detects a data receivable state of a following node which will processthe data next to the node of the input data discrimination unit 606. Thedata receivable state detection unit 616 detects a notification of thereceivable state from another node.

When the data transmission control unit 611 outputs the input data fromthe processed data input unit 608 to the ring bus 602, the datatransmission control unit 611 controls whether to output the data basedon the state detected by the data receivable state detection unit 616.

A data receivable state notification unit 617 generates a command fornotifying a previous node, which processes the data before the own node,of the data receivable state of the own node. At this point, the inputdata discrimination unit 606 discriminates the last processed node fromthe received data and informs the data receivable state notificationunit 617 of the last processed node as a notification destination. Theoutput data generation unit 612 generates the transmission packet fromthe packet which the input data discrimination unit 606 determines notto be processed by the own node or the empty packet which the input datadiscrimination unit 606 determines not to include the valid data.

The output data generation unit 612 also generates the transmissionpacket from the data necessary for being output from the datatransmission control unit 611 to the ring bus 602 or the commandgenerated by the data receivable state notification unit 617.

The output data transmission unit 613 transmits the packet generated bythe output data generation unit 612 to the ring bus 602. A datatransmission number counter 614 counts a number of packets as a numberof data sets which are processed by the data processing unit 604 andtransmitted from the own node to the ring bus 602. A continuous datatransmission number register 615 sets a number of times of sequentiallytransmitting the data processed by the data processing unit 604. Inorder to store a time period which has elapsed since the last data hasbeen transmitted, the data transmission interval counter 609 isincremented for each cycle. The data transmission interval register 610stores the interval between the transmissions of the data processed bythe data processing unit 604.

The packet used by the data receivable state notification unit 617 forthe notification of the data receivable state of the own node will bedescribed. FIG. 2B illustrates the format of the command packet fornotifying the previous node in the processing order of the datareceivable state of the node of the latter stage in the processingorder.

The field 206 includes the command for notifying the node in theprevious stage of the data receivable state of the node in the latterstage of the processing.

Further, contents of the command in a field 702 of the command packetfor notification of the data receivable state may include specificinformation of the data receivable state such as a number of receivabledata sets and time (a number of cycles) necessary for becoming the datareceivable state.

In the data processing unit, a number of data sets necessary forprocessing is predetermined. The number of data sets corresponds to anumber of sequential data transmissions performed by the data processingunit in the previous stage of the processing and previously stored inthe continuous data transmission number register 615. When the datareceivable state detection unit 616 detects that the data processingunit in the latter stage of the processing becomes a data receivablestate, an amount of the data sets corresponds to the number of thesequential data transmissions set to the continuous data transmissionnumber register 615 is transmitted. At this time, the interval betweenthe data transmissions is previously set to the data transmissioninterval register 610 according to the processing time of the dataprocessing unit in the latter stage, such that the data can be receivedwithout being missed. The registers 615 and 610 may be separatelyincluded in or shared by the data processing units.

The processing of the data transmission control unit 611 will bedescribed below referring to FIG. 14.

FIG. 14 is a flowchart illustrating the processing performed by the datatransmission control unit 611 according to the first exemplaryembodiment. In step S1401, the data transmission control unit 611 checksthe data receivable state of the node in the latter stage of theprocessing detected by the data receivable state detection unit 616. Instep S1402, when the state is determined not to be receivable (No instep S1402), the data transmission control unit 611 repeats theprocessing in steps S1401 and S1402 until the state becomes receivable.When the state is receivable (YES in step S1402), the processingproceeds to step S1403. In step S1403, the data transmission controlunit 611 resets a value of the data transmission number counter 614 tozero.

In step S1404, the data transmission control unit 611 checks whether thetransmittable data processed by the data processing unit 604 is inputfrom a processed data input unit 608. In step S1405, when it isdetermined that there is no transmittable data (NO in step S1405), thedata transmission control unit 611 repeats the processing in steps S1404and S1405 until the transmittable data is input. When the transmittabledata is input (YES in step S1405), the processing proceeds to stepS1406. The data transmission control unit 611 increments the datatransmission interval counter 609. In step S1407, the data transmissioncontrol unit 611 compares the interval from a last transmission (a valueof the data transmission interval counter 609) with the interval (avalue of the data transmission interval register 610) in which the dataprocessing unit in the latter stage can perform processing. The datatransmission control unit 611 repeats the processing insteps S1406 andS1407 until the interval from the last transmission becomes equal to ormore than the interval in which the data processing unit in the latterstage can be perform processing.

When the above described condition is satisfied (YES in step S1407), theprocessing proceeds to step S1408. In step S1408, the data transmissioncontrol unit 611 transmits the data to the output data generation unit612. Further the output data generation unit 612 generates the packet,and the output data transmission unit 613 transmits the generated packetto the ring bus 602.

In step S1409, the data transmission interval counter 609 is reset. Instep S1410, the data transmission number counter 614 is incremented. Instep S1411, the data transmission control unit 611 determines whether avalue of the data transmission number counter 614 reaches that of thecontinuous data transmission number register 615.

When data sets corresponding to the number of times of sequentialtransmission of the data is not transmitted (NO in step S1411), theprocessing returns to step S1404, and the data transmission control unit611 repeats the above described processing. When the data correspondingto the number of times of sequential transmission of the data istransmitted (YES in step S1411), the processing returns to step S1401and the data transmission control unit 611 waits in step S1402 until thedata processing unit in the latter stage becomes receivable.

The processing in which a certain node notifies another node in theprevious stage in the processing of the data receivable state will bedescribed below. The data receivable state notification unit 617determines the data receivable state based on the state for receivingthe packet in the input data reception unit 605 and the state forprocessing in the data processing unit 604. In order to notify the datareceivable state with using the command, a latency until the command isdetected in a notification target node in the previous stage of theprocessing is necessary one cycle at least and a number of cycles whichis one cycle less than a latency corresponding to one circuit of thering bus 602 at largest.

Further, until the data transmitted from the notification target node isactually received, it needs to consider that other nodes may perform theprocessing on the way. Thus, a total latency needs at least one circuitof the ring bus 602 including the latency for the notifying command (thelatency for one circuit of the ring bus 602 corresponds to a number ofcycles necessary for the data to go one circuit of the ring bus 602).

Considering the latency described above, timing for transmitting thenotification command of the data receivable state may be earlier thanwhen the node to be notified becomes the data receivable state.

However, since the processing performance is deteriorated if thereceived data is missed, it is desirable to set the latency after thedata receivable state is notified and until the data is actuallyreceived as described below. More specifically, it is desirable that thenotification of the data receivable state is performed at an upper limitof a number of cycles which is earlier than the time when the dataprocessing unit actually becomes the data receivable state.

The processing using the image processing apparatus illustrated in FIG.13 will be described below referring to FIGS. 15A and 15B.

In FIGS. 15A and 15B, a data acquisition unit 1521, data processingcircuits 1522 and 1523, and a data output unit 1524 are respectivelyconnected to communication processing units 1511, 1512, 1513, and 1514.Packets 1531 to 1534 are data packets, and a packet 1535 is a commandpacket.

The command packet 1535 is transmitted from the communication processingunit 1513 to the communication processing unit 1511 to notify that thecommunication processing unit 1513 becomes receivable. At this point,the command packet also circulates in a ring bus 1501 similarly to thedata packet.

In FIG. 15A, four data packets 1533 in front to 1534 are transmitted tothe data processing circuit 1523 and are processed. At this point, sincethe communication processing unit 1511 which is the previous stage ofthe communication processing unit 1513 connected to the data processingcircuit 1523 is waiting for the receivable command from thecommunication processing unit 1513, the communication processing unit1511 restricts transmission of the data packet 1531 following to thedata packet 1534.

FIG. 15B illustrates a state in which the data processing circuit 1523completes the processing and the data processing circuit 1522 isprocessing the data of the data packet 1534. At this point, the commandpacket 1535 is received by the communication processing unit 1511 andtransmission of the data packet 1531 is started.

Subsequently, four data sets from the data packet 1531 to the datapacket 1532 are supplied to the data processing circuit 1523 similarlyto the state illustrated in FIG. 15A. However, since the data processingcircuit 1522 is processing the data packet 1534 when the data packet1531 is transmitted, it is necessary to consider that the data packet1531 is not to be received by the data processing circuit 1522.

On the other hand, mainly four methods described below can control anamount of the data to be transmitted by each communication processingunit to each processing unit in the latter stage. In a first method, thecommunication processing unit 1512 also notifies the communicationprocessing unit 1511 of the data receivable state. In a second method,after the communication processing unit 1511 receives the command packet1535, the data packet 1531 is not transmitted right away but transmittedafter an interval of three or more cycles in which processing of thedata packet 1534 is completed like other data. In a third method, timingfor transmitting the command packet 1535 from the communicationprocessing unit 1513 is adjusted. In a fourth method, the command packet1535 includes information instructing transmission at the intervals ofthree cycles or more in which the processing of the data packet 1534 iscompleted.

In order to realize the fourth method, after the interval instructed bythe command packet 1535 is spaced, the data receivable state detectionunit 616 may notify the data transmission control unit 611 that thecommunication processing unit 1513 becomes receivable.

The above described processing can generate a similar effect even whenthe data processing circuit 1523 increases an amount of the data setssuch that four data packets output twice data packets, namely eight datapackets. In that case, similarly to the data packet 1534 illustrated inFIG. 15B, the last eighth data packet is processed by the dataprocessing circuit 1522.

Therefore, the command packet 1535 for notifying that the communicationprocessing unit 1513 becomes receivable is also transmitted to thecommunication processing unit 1511, and appropriate data is suppliedfrom the communication processing unit 1511 according to a processingstate of the communication processing unit 1513. This method can beapplied not only to a case where the amount of data is increased toother than twice but also where the data is reduced.

By using the configuration illustrated in FIG. 13, the processingcircuit in the latter stage of the processing can notify the previousprocessing circuit of the data receivable state thereof. Thus, theamount and the timing of the data which is supplied from the previousstage to the ring bus and to be processed by the node in the latterstage are adjusted to optimum. As a result, even if the amount of thedata is increased in a data flow, the data from the previous stage issupplied when the data is needed in the latter stage, and the data flowcan be controlled with high efficiency without wasting a capacity of thering bus or deteriorating the performance. Further, according to thefirst exemplary embodiment, since a signal line separate from the ringbus does not need to be provided for notification of the data receivablestate, the data processing apparatus can be decreased in size.

As a method for notifying the processing unit of the data receivablestate, a configuration illustrated in FIG. 17 may be used. In theconfiguration illustrated in FIG. 17, the data receivable statedetection unit 616 and the data receivable state notification unit 617in each data processing unit are directly connected with each other viaa cross-bus switch 1701. The data receivable state can be notified via asignal line directly connected to the data receivable state detectionunit 616 and the data receivable state notification unit 617.

As long as the data receivable state detection unit 616 and the datareceivable state notification unit 617 of each data processing unit aredirectly connected with each other, any method other than the cross busswitch may be used.

When a connection line for notification is configured separately fromthe ring bus, all of the data processing units installed in theapparatus do not need to be connected to the connection line. Forexample, when the data processing unit provided with the dataacquisition unit for supplying the data to the ring bus is connectedwith the data processing unit which is expected to increase the amountof data by the processing, a number of the signal lines can bedecreased, and the apparatus can be efficiently controlled.

As another configuration of the communication processing unit 603, aconfiguration illustrated in FIG. 18 may be used. In the configurationillustrated in FIG. 18, when a data processing unit targeted fordetection by the data receivable state detection unit 616 is in the datareceivable state, a time period “A” in which the data is transmittableand a time period “B” in which the data transmission is restricted arerepeatedly performed.

In FIG. 18, components and processes which have same functions as thoseillustrated in FIG. 5 are denoted in the same reference numerals.Descriptions about components and processes which have similarconfigurations or functions will not be repeated.

In FIG. 18, a data transmittable time period setting register 1801stores information indicating the time period “A” in which the data istransmittable. A data transmission restriction period setting register1802 stores information indicating the time period “B” in which the datatransmission is restricted. A timer 1803 notifies the data transmissioncontrol unit 611 of timing for switching the time periods “A” and “B”.

When the data transmittable state detection unit 616 detects that thenode in the latter stage is in the data receivable state, the datatransmission control unit 611 repeats the transmission of data and therestriction of the data transmission with a period notified by the timer1803.

As described above, in the configuration illustrated in FIG. 18, thedata can be transmitted at the set cycle to be regularly circulated.Further, the data receivable state is notified by the node in the latterstage, so that the data necessary for the processing can beappropriately circulated.

When the node in the latter stage is switched to the data receivablestate, the timer 1803 may start counting of the time as the timer froman initial state or from a point where a last operation has beeninterrupted.

The time period “B” for restricting the transmission which is set in thedata transmission restriction time period setting register 1802 ispreferably equal to the interval in which the data processing unit 604transmits the data to the processed data input unit 608 or longer.

As illustrated in FIG. 16, as the packet to be used for notification, afield 1001 may store a Request bit indicating the data receivable stateof the data processing unit in the latter stage of the processing (e.g.,“1” for receivable, “0” for non-receivable). More specifically, theinput data discrimination unit 606 transmits a value of the Request bitof the valid data packet to be processed by the own node to the datareceivable state detection unit 616. The data receivable state detectionunit 616 determines whether the node in the latter stage is in the datareceivable state based on the value of the Request bit, and the datatransmission control unit 611 controls transmission of the data.

On the other hand, when the data receivable state is notified to thenode in the previous stage of the processing, information notified fromthe data receivable state notification unit 617 is set as the value ofthe Request bit in the packet generation unit 612.

In the descriptions of each exemplary embodiment described above, theimage processing apparatus is used as an example, however the exemplaryembodiment of the present invention is not limited to the imageprocessing but can be applied to information processing in whichprocessing such as the pipeline processing is executed in parallel by aplurality of processing units.

The present invention is used for enabling the processing units tooperate in parallel, which is not described in the above describedexemplary embodiments, the present invention can be suitably adapted fora ultrahigh-speed multi-core processor. Further, when a paralleloperation is performed, it is ideal to distribute load equally to eachprocessing unit. Thus, it is desirable to divide the data input to theprocessing units which have an equal processing function into packets(or a predetermined amount of data sets) which have a predeterminedlength (bit length) by the data acquisition unit to enable processingunits to perform parallel processing. When the processing of theprocessing units is different, the packet length (amount of data sets)may be adjusted such that a time from processing the packet by eachprocessing unit to outputting is closer to a predetermined time.

The packet length is not regulated in each exemplary embodimentdescribed above. However, if the packet length is set to a predeterminedlength, an appropriate value can be set to the transmission interval(transmission time period) in each module.

In the above described exemplary embodiments, the valid flag indicatingvalidity of packet is used. However, a specific node ID (e.g., “0”) maybe defined as an invalid packet (equivalent to “0” for valid flag) toreduce the packet length.

The data acquired from an external apparatus may be input in a packetformat used by the ring bus. Further, the processing unit may interpretand process the packet as it is.

The figures illustrating the schematic configurations of each unit inthe data processing apparatus used in the above described exemplaryembodiments are used for describing relationships for connecting thecircuits or the function units, but not restricting a positionalrelationship or a number of the components. For example, in order toimplement the present invention, three or more communication units(including input and output units) may be provided, or two or moreprocessing units may be provided.

For example, processing modules (data processing units described above)may be formed as separate chips, or a single chip. The processing unitsmay be formed similarly to the communication units. The configuration ofthe present invention may be formed as one chip.

In the above described exemplary embodiments, each of the processingmodules is connected in a ring topology, however, the present inventionis not limited thereto. For example, even if the processing modules areconnected in a bus topology or in a mesh pattern, the present inventioncan be applied to all configurations in which a series of processing(pipeline processing) is divided and performed in parallel by aplurality of modules in order. Thus, transfer efficiency can beimproved.

The exemplary embodiments described above only describes the setting ofa single pipeline processing as an example, however, the presentinvention can be applied to a parallel processing unit which executes aplurality types of pipeline processing by a time-division multiplexingmethod. In that case, the format of the packet may be provided with apath identifier for identifying the pipeline processing to which thepacket belongs. Settings of each module may be stored therein for eachpipeline processing. A register for discriminating the input packet fordiscriminating the input data and a register for storing the ID to beadded to the output packet need to store the ID for each pipelineprocessing.

Aspects of the present invention can also be realized by a computer of asystem or apparatus (or devices such as a CPU or MPU) that reads out andexecutes a program recorded on a memory device to perform the functionsof the above described embodiment (s), and by a method, the steps ofwhich are performed by a computer of a system or apparatus by, forexample, reading out and executing a program recorded on a memory deviceto perform the functions of the above described embodiment(s). For thispurpose, the program is provided to the computer for example via anetwork or from a recording medium of various types serving as thememory device (e.g., computer-readable storage medium).

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all modifications, equivalent structures, and functions.

This application claims priority from Japanese Patent Applications No.2009-041295 filed Feb. 24, 2009 and No. 2009-064682 filed Mar. 17, 2009,which are hereby incorporated by reference herein in their entirety.

1. An information processing apparatus in which a plurality of modulesare connected in a ring shape via a bus and each module processes apacket flowing in a single direction on the ring in a predeterminedorder, wherein the module includes: a communication unit configured totransmit a packet which is received from a first direction in the ringvia the bus to a second direction therein; a discrimination unitconfigured to discriminate a packet from among the packets received fromthe first direction as a processing packet to be processed by themodule; and a processing unit which is connected with the communicationunit one by one and configured to process the processing packetdiscriminated by the discrimination unit, wherein the communication unittransmits the packet processed by the processing unit at an intervalequivalent to processing time or more for a processing packet processedby a module in a latter stage in the predetermined order among aplurality of packets which is transmitted by the communication unit tothe second direction.
 2. The information processing apparatus accordingto claim 1, further comprising a register configured to store a valueindicating a data transmission interval which is equal to or more thanthe processing time for a packet to be processed by the module in thelatter stage in the predetermined order.
 3. An information processingapparatus in which a plurality of modules are connected in a ring shapevia a bus and each module processes data flowing in a single directionon the ring in a predetermined order, wherein the module includes: acommunication unit configured to transmit data which is received from afirst direction in the ring via the bus, to a second direction therein;a discrimination unit configured to discriminate data from among thereceived data as processing data to be processed by the module; and aprocessing unit which is connected with the communication unit one byone and configured to process the processing data discriminated by thediscrimination unit, wherein, every time a first amount of dataprocessed by the processing unit is transmitted, the communication unitsuspends transmission of the data processed by the processing unitduring a time period equivalent to a time period for transmitting asecond amount of data, among a plurality of data sets which istransmitted by the communication unit to the second direction.
 4. Theinformation processing apparatus according to claim 3, furthercomprising a register configured to store a number of transmissions,wherein a number of transmission of packets storing the data processedby the processing unit is compared with the number of transmissions, sothat the communication unit determines the first or second amounts ofdata.
 5. The information processing apparatus according to claim 3,further comprising a register configured to store a transmission timeperiod, wherein a time period for continuously transmitting the dataprocessed by the processing unit is compared with the transmission timeperiod, so that the communication unit determines the first or secondamounts of data.
 6. A method for processing information in aninformation processing apparatus in which a plurality of modules areconnected in a ring shape via a bus and each module processes a packetflowing in a single direction on the ring in a predetermined order, themethod comprising: transmitting, by the communication unit, a packetwhich is received from a first direction in the ring via the bus, to asecond direction therein; discriminating, by a discrimination unit, apacket from among packets received from the first direction as aprocessing packet to be processed by the module; and causing aprocessing unit which is connected with the communication unit one byone to process the processing packet discriminated by the discriminationunit, wherein the packet processed by the processing unit is transmittedat an interval equivalent to processing time or more for each processingpacket processed by a module in a latter stage in the predeterminedorder, among a plurality of packets which is transmitted by thecommunication unit to the second direction.
 7. A method for processinginformation in an information processing apparatus in which a pluralityof modules are connected in a ring shape via a bus and each moduleprocesses data flowing in a single direction on the ring in apredetermined order, the method comprising: transmitting, by thecommunication unit, data which is received from a first direction in thering via the bus, to a second direction therein; discriminating, by adiscrimination unit, data from among data sets received from the firstdirection as processing data to be processed by the module; and causinga processing unit which is connected with the communication unit one byone to process the processing data discriminated by the discriminationunit, wherein, every time a first amount of data processed by theprocessing unit is transmitted, the communication unit suspendstransmission of the data processed by the processing unit during a timeperiod equivalent to a time period for transmitting a second amount ofdata, among a plurality of data sets which is transmitted by thecommunication unit to the second direction.
 8. A computer-readablestorage medium which stores a program for executing a method forprocessing information in an information processing apparatus in which aplurality of modules are connected in a ring shape via a bus and eachmodule processes data flowing in a single direction on the ring in apredetermined order, the method comprising: transmitting, by thecommunication unit, data which is received from a first direction in thering via the bus, to a second direction therein; discriminating, by adiscrimination unit, data from among data sets received from the firstdirection as processing data to be processed by the module; and causinga processing unit which is connected with the communication unit one byone to process the processing data discriminated by the discriminationunit, wherein, every time a first amount of data processed by theprocessing unit is transmitted, the communication unit suspendstransmission of the data processed by the processing unit during a timeperiod equivalent to a time period for transmitting a second amount ofdata, among a plurality of data sets which is transmitted by thecommunication unit to the second direction.